package demo.dao.dto;

import demo.util.DateTimeUtils;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;
import java.util.concurrent.TimeUnit;

@Getter
@Setter
public class Alert {
    /**
     * 自增ID
     */
    private Integer id;

    /**
     * 报警系统
     */
    private String app;

    /**
     * 报警服务
     */
    private String service;

    /**
     * 报警对象
     */
    private String target;

    /**
     * 报警类型
     */
    private String tag;

    /**
     * 报警组
     */
    private String alertGroup;

    /**
     * 开始时间
     */
    private Date startTime;

    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 状态
     */
    private String state;
    /**
     * 报警级别
     */
    private String alertLevel;


    /**
     * 报警持续时长(分钟)
     *
     * @return
     */
    public long durationMinutes() {
        if (startTime == null || endTime == null) {
            return 1;
        }
        return TimeUnit.MILLISECONDS.toMinutes(endTime.getTime() - startTime.getTime()) + 1;
    }


    public String getDurationHuman() {
        return DateTimeUtils.humanSeconds(TimeUnit.MINUTES.toSeconds(durationMinutes()));
    }



}